Skip to main content

Application properties Windows, Linux

1Gateway is a Spring Boot application. Spring properties can be used to configure the server:
https://docs.spring.io/spring-boot/appendix/application-properties/index.html

This document lists all of the application properties supported by 1Gateway.
1Gateway ships with a default setup defined in the application properties file found in the root folder of your installation. You can modify the properties to adjust how 1Gateway behaves.

Springboot properties

1Gateway is built on the Spring Boot framework, which uses a standardized set of properties to manage core server behavior. These settings allow you to define the underlying infrastructure requirements, such as security protocols, database connection strings (MongoDB), messaging broker details (RabbitMQ), and SSL/TLS certificate configurations for secure communication.

KeyDescriptionDefault value
spring.security.oauth2.resourceserver.jwt.issuer-uriOAuth/OpenID configuration endpoint
spring.rabbitmq.ssl.enabledEnable SSL support
spring.rabbitmq.hostRabbitMQ hostlocalhost
spring.rabbitmq.portRabbitMQ port
spring.rabbitmq.usernameRabbitMQ usernameguest
spring.rabbitmq.passwordRabbitMQ passwordguest
spring.mongodb.uriMongoDB connection URImongodb://localhost:27017/1gateway
spring.servlet.multipart.max-file-sizeMax file size1024MB
spring.servlet.multipart.max-request-sizeMax request size1024MB
server.portHTTPS port8080
server.ssl.key-storePath to keystore
server.ssl.key-store-passwordKeystore password
server.ssl.key-store-typeKeystore typePKCS12
server.ssl.key-aliasCertificate alias
server.ssl.key-passwordPrivate key password

1Gateway properties

These application-specific properties control the internal logic and orchestration engine of 1Gateway. Use these configurations to fine-tune system behavior, including message retry intervals, audit trail retention policies, plugin repository synchronization, and authentication levels for specific API endpoints.

application.rabbitmq

Class: com.faciligate.queue.rabbit.v4.properties.RabbitMqProperties

KeyDescriptionDefault value
batch-sizeThe batch size to use when sending messages10
dead-letter-exchangeThe RabbitMQ exchange where the dead letter queue will be defined1gateway-dlq
dead-letter-queueThe name of the dead letter queuedlq
dead-letter-queue-enabledCreate and enable the dead letter queue during startuptrue
dead-letter-topicThe topic to use when sending dead letter messagesdead.letter
initial-intervalThe initial interval in milliseconds between retries1000
max-delayThe maximum delay in milliseconds when throttling0
max-intervalThe maximum interval between retries30000
max-retry-attemptsHow many times should a message be retried before being sent to the dead letter queue1
multiplierThe multiplier to use for the interval between retries1.5
stopthrottleNumber of messages queued before the producer is stopped0
throttleNumber of messages queued before the producer is throttled0

application.audit

Class: com.faciligate.audit.configuration.AuditProperties

KeyDescriptionDefault value
action-messageDeprecatedfalse
action-mongo-dbDeprecatedfalse
audit-collectionThe name of the audit trail collection. If auditProvider is mongodb, this is the name of the collection.audit
audit-history-collectionThe name of the audit history trail collection. If auditProvider is mongodb, this is the name of the collection.auditHistory
audit-history-retentionHow long do we want to keep history audit logs in days300
audit-pathThe path to the audit trail. If auditProvider is filesystem, this is the path to the audit trail./data/audit
audit-providerWhere do we want to store the audit trail. Options are: mongodb, filesystem, nonemongodb
audit-retentionHow long do we want to keep audit logs in days30
audit-retention-pathWhere do we want to store old audit logs in the file system. If no path is provided, the retention policy will not be applied to old logs.
config-messageDeprecatedfalse
config-mongo-dbDeprecatedtrue
log-collectionThe name of the REST dialog log collection. If logProvider is mongodb, this is the name of the collection.log
log-pathThe path to the REST dialog log. If logProvider is filesystem, this is the path to the log./data/audit
log-providerWhere do we want to store the REST dialog log. Options are: mongodb, filesystem, nonefilesystem
log-retentionHow long do we want to keep REST dialog logs in days30
login-messageDeprecatedfalse
login-mongo-dbDeprecatedfalse
message[Ljava.lang.Object;@4dbca6e4
mongoThe audit destinations (mongo, message) with their filters The filter format is type.action.objecttype.objectname Any of the fields can be replaced with a * to match any value Leading * can be omitted Example: action..plugin. or action.*.plugin will match all plugin actions type is one of: action, login, record, config, error action is one of: delete, create, activate, deactivate, purgue, retry, config, login objecttype is one of: plugin, mapper, queue, message, user objectname is the name of the object[Ljava.lang.Object;@423e05ec
record-logWhen to store logs. Options are: always, never, erroralways
record-messageDeprecatedfalse
record-mongo-dbDeprecatedfalse

application.message.option

Class: com.faciligate.MessageOptionProperties

KeyDescriptionDefault value
address-formatAddress format can be "endpoint" or "subscriber". Only relevant if a subscriberId is set.endpoint
auditDeprecatedfalse
audithistoryDeprecatedfalse
feedbackDeprecatedfalse
idmapDeprecatedsubscriber
legacytopicUse legacy topic format "origin.messagetype.phase" - for compatibiility with old systems The new format is "origin.destination.messagetype"false
restauditDeprecatedfalse
transactionalDeprecatedfalse

application.aop

Class: com.faciligate.instrumentation.AopProperties

KeyDescriptionDefault value
classesInternal use onlycom.faciligate.routing.RoutingService
methodcountInternal use only1
methodsInternal use only
packagesInternal use onlycom.faciligate.api

application.rabbitmq.remote

Class: com.faciligate.queue.rabbit.v4.properties.RabbitRemoteExchangeProperties

KeyDescriptionDefault value
enabledShould the remote exchange be enabled - really only used for 1Bonding deploymentsfalse
exchange-nameThe RabbitMQ exchange for remote connections
hostThe RabbitMQ host for remote connections
management-portThe RabbitMQ management port - use only if the user has admin permissions
management-url
passwordThe RabbitMQ password for remote connections
portThe RabbitMQ port for remote connections
props
publishShould messages be sent to the remote exchangefalse
sslShould the remote exchange use SSLfalse
ssl-versionSSL version to use for the remote host. Only used if SSL is enabledTLSv1.2
subscribeShould messages be received from the remote exchangefalse
timeoutThe timeout for the RabbitMQ connection in milliseconds1000
usernameThe RabbitMQ user for remote connections
virtual-hostThe RabbitMQ vhost for remote connections

application.plugin.repository

Class: com.faciligate.plugin.repository.RepositoryProperties

KeyDescriptionDefault value
passwordThe password of the repository
urlThe url of the repository
userThe user of the repository

application.rabbitmq.local

Class: com.faciligate.queue.rabbit.v4.properties.RabbitLocalExchangeProperties

KeyDescriptionDefault value
enabledShould the local exchange be enabledtrue
exchange-nameThe RabbitMQ exchange for local connections
hostThe RabbitMQ host for local connections
management-portThe RabbitMQ management port - use only if the user has admin permissions
management-url
passwordThe RabbitMQ password for local connections
portThe RabbitMQ port for local connections
props
publishShould messages be sent to the local exchangefalse
sslShould the local exchange use SSLfalse
ssl-versionSSL version to use for the local host. Only used if SSL is enabledTLSv1.2
subscribeShould messages be received from the local exchangefalse
timeoutThe timeout for the RabbitMQ connection in milliseconds1000
usernameThe RabbitMQ user for local connections
virtual-hostThe RabbitMQ vhost for local connections

application

Class: com.faciligate.ApplicationProperties

KeyDescriptionDefault value
ai-api-keyThe API key for AI services.
app-nameThe name of the application.
authenticateEnable Authentication for 1Gateway. Possible values: false,basic,oauth false: No authentication is required. The rest of the authentication properties will be ignored. basic: Basic authentication is required. oauth: OAuth2 authentication is required. Alternatively, for backwards compatibility, you can set application.authenticate=true, which will also enable Basic Authentication.
authenticate-mongodbConfigures authentication for the /api/v4/mongo. Possible values: false, strict, token, strictToken. False means the authenticated user can access all MongoDB collections. If strict, the authenticated user can access only the collections that match their username. If token, the endpoint is open and the API key must belong to a user and must not be expired. If strictToken, the endpoint is open and the API key must belong to a user, must not be expired, and the user's name must match the collection name.false
authenticate-queueConfigures authentication for the /api/v3/message/queue and /api/v4/message/queue endpoints. Possible values: false, strict, token, strictToken. False means the authenticated user can access all queues. If strict, the name of the logged in user must match the queue name. If token, the endpoint is open and the API key must belong to a user and must not be expired. If strictToken, the endpoint is open and the API key must belong to a user, must not be expired, and the user's name must match the queue name.false
authenticate-sendThis configures authentication for the /send endpoint, which is used for webhooks. If strict, the endpoint /send verifies that the logged-in user's name matches the webhook parameter. Possible values: false,strict The user always needs to be in the role webhook. Anything else is ignored. Default: false
authenticate-send-no-authEnable SendNoAuth authentication. If this property is set, the authenticate-webhook property is ignored. Possible values: false,true,token,strict If false, the endpoint /sendNoAuth gives a 404. This is the default. If true, the endpoint is open without the need for a token or apiKey. If token, the apiKey must belong to a user and must not be expired. If strict, the apiKey must belong to a user, must not be expired, and the user's name must match the webhook parameter. Default: false
authenticate-webhook@deprecated: Enable Webhook Authentication. If false, the endpoint /sendNoAuth is enabled with no security. If strict, same as authenticate-send=strict. If true, the endpoint /sendNoAuth is disabled. ossible values false,true,strict Default: falsefalse
authorization-urlThe URL for authorization. This property is used by the UI if oAuth is enabled.
backupfolder@deprecated As of version 4.2, the backup directory configuration will be managed within a JSON file located in the "data/config" folder. This property will be removed in a future release. @since 4.2 @see /data/config/backup.json
catalog-pathThe path to the data/catalog directory. This contains runtime artifacts including:
Installed plugins: All currently installed plugins.
Plugin logos: Logo assets for plugins.
Schemas: NormalizedAlarm, NormalizedIncident, and custom schemas.
Archive: Historical record of installed items.
client-idThe client ID for the application. This property is used by the UI if oAuth is enabled.
config-filetypesThe list of configuration file types.
config-pathThe path to the configuration files.
core-nameThe name of the core.
delayed-startupIndicates if the startup should be delayed.false
delayed-startup-in-millisThe delay in milliseconds for the startup.
demoIndicates if the application is running in demo mode.false
demo-catalog-pathThe path to the demo catalog file.
domainThe domain of the application.
enable-experimental-featuresIndicates if experimental features are enabled.false
encryption-keyThe encryption key for encrypted text.
environmentInternal use only.
errorhandling-legacyIndicates if legacy error handling is enabled.true
groupingThe grouping of the plugins. Default is "endpoint". Set to "plugin" to group by the first word of the plugin name.endpoint
http-client-timeoutThe timeout for the HTTP client.60
initial-passwordThe initial password for the application.
initial-userThe initial user for the application.
instance-idThe instance ID of the application.
instance-nameThe instance name of the application.
keep-last-transactionsThe number of transactions to keep.25
log-pathThe path to the log files.
logout-urlThe URL for logout. This property is used by the UI if oAuth is enabled.
main-config-pathThe path to the main configuration file.
mantain-cmdbIndicates if the CMDB should be maintained.false
maxhopsThe maximum number of hops.20
non-proxy-hostsThe non-proxy hosts.
proxy-authenticationIndicates if proxy authentication is enabled.false
proxy-enabledIndicates if the proxy is enabled. Possible values: true, false Default: false.false
proxy-hostThe host for the proxy.
proxy-passwordThe password for the proxy.
proxy-portThe port for the proxy.0
proxy-usernameThe username for the proxy.
repourlThe URL for the plugin repository.https://repo.1bonding.com
staging-config-pathThe path to the staging configuration file.
startup-timeThe startup time of the application.0
subscriber-idThe subscriber ID for the application.
token-urlThe URL for token retrieval. This property is used by the UI if oAuth is enabled.
topic-prefixThe prefix for topics.
use-latest-plugin-versionIndicates if the latest plugin version should be used.true
user-settings-pathThe path to the user settings.
versionThe 1Gateway version

crypto.keystore

Class: com.faciligate.security.config.KeyStoreProperties$Keystore

KeyDescriptionDefault value
passwordKeystore password.verySecret
pathPath to the keystore file.data/keystore

crypto.self

Class: com.faciligate.security.config.KeyStoreProperties$Self

KeyDescriptionDefault value
aliasAlias for the self-signed certificate.self
dnSubject DN for the self-signed certificate.CN=Mapper, OU=Integration, O=YourOrg, L=City, C=US
key-passwordKey password for the self-signed certificate.superSecret

crypto.self.key-password crypto.self.dn crypto.self.alias crypto.keystore.path crypto.keystore.password spring.security.oauth2.resourceserver.jwt.issuer-uri spring.rabbitmq.ssl.enabled spring.rabbitmq.host spring.rabbitmq.port spring.rabbitmq.username spring.rabbitmq.password spring.mongodb.uri spring.servlet.multipart.max-file-size spring.servlet.multipart.max-request-size spring.web.resources.static-locations spring.groovy.template.check-template-location spring.jmx.enabled server.port server.ssl.key-store server.ssl.key-store-password server.ssl.key-store-type server.ssl.key-alias server.ssl.key-password batch-size dead-letter-exchange dead-letter-queue dead-letter-queue-enabled dead-letter-topic initial-interval max-delay max-interval max-retry-attempts multiplier stopthrottle throttle action-message action-mongo-db audit-collection audit-history-collection audit-history-retention audit-path audit-provider audit-retention audit-retention-path config-message config-mongo-db log-collection log-path log-provider log-retention login-message login-mongo-db record-log record-message record-mongo-db audit audithistory feedback idmap legacytopic restaudit transactional classes methodcount methods packages enabled exchange-name host management-port password port props publish ssl ssl-version subscribe username virtual-host url user ai-api-key app-name authenticate authenticate-mongodb authenticate-queue authenticate-send authenticate-send-no-auth authenticate-webhook authorization-url backupfolder catalog-path client-id config-filetypes config-path core-name delayed-startup delayed-startup-in-millis demo demo-catalog-path domain enable-experimental-features encryption-key environment errorhandling-legacy grouping http-client-timeout initial-password initial-user instance-id instance-name keep-last-transactions log-path logout-url main-config-path mantain-cmdb